Very frequently during the life cycle of an existing computer program that was written by a third party, a situation will arise where software maintenance of the program must be performed. Taking into consideration the report that software maintenance expenditures may account for 80% of the costs accrued over the life cycle of a program, for maintenance of the existing program, it is important that the program be understood exactly. When the maintenance performed for such a program is based on an incomplete understanding of its data structures, new data may overwrite data fields that were previously prepared, or data may be entered into data fields for which it is not intended and may later be overwritten when other data are written therein. In addition, in a region wherein are recorded money amounts, etc., data may be incorrectly identified (for example, when re-definition is performed for a region, and a value is shifted one digit to the left, 1,000,000 yen will be identified as 10,000,000 yen), which will result in the occurrence of irresoluble system operating obstacles and employment problems.
For the maintenance of a program, careful testing and application of test procedures is required; and the searching for mistakes in the code, and the correcting, the compiling and the re-testing of the code must be repeated until a normal operation is attained. For newly created programs, however, full and complete documentation that defines data fields must be provided. If data field documentation is inaccurate or incomplete, the above problems will occur. A full understanding of program data structures, and documentation that defines data fields are important, therefore, not only for the processes that are used for the maintenance of existing programs, but also for the processes that are used to develop new programs.
A coding method for re-defining data fields that were previously defined has been adapted for use with many program languages, such as PL/I, Cobol, C, Fortran, assembler and Pascal. According to the coding method for re-defining data fields, since a physical area that is a shared use is defined by a plurality of different data items, such as record length and record attributes, the difficulty in acquiring a full understanding of a data structure tends to be compounded. Furthermore, in many cases the areas that are defined by code for the definition of data fields, and those that are defined by code for the re-definition of data fields are positioned at locations that are physically distant from each other; and as the number of data items for defining data fields is increased, and the two sets of code are subsequently positioned at locations that are increasingly distant from each other, it becomes progressively more difficult to obtain an exact understanding of a program's data structures by examining only its code.
There is a demand, therefore, for a system and a method that provide support for obtaining a visual and intuitive understanding of the data structure of a program, and that provide a location in a memory area where a program can be quickly and correctly developed and analyzed.
For conventional problems, M. A. Jackson (J. Martin and C. McClure, "Structure Techniques: The Basis for CASE", PRENTICE HALL, Englewood Cliffs, N.J. 07632, Page 209) proposed a system that employs a Data-Structure Diagram (hereinafter referred to as the "Jackson Diagram"). The Jackson Diagram employs a hierarchial chart to visually express a data structure in a data field that illustrates the hierarchial relationship existing between data items. The Jackson Diagram is used when a program is designed, but is not used to express, using an easy format, the data structure of a program that is being coded. Further, the Jackson Diagram represents only the hierarchial relationship of the data structures, and can neither designate which areas the individual data items occupy nor describe how they overlap.
IBM Technical Disclosure Bulletin, "VISUALIZATION METHOD FOR PROGRAM DATA ITEMS", Vol. 37, No. 04B, April 1994, pp. 95-96, proposes a system whereby code for a re-defined data structure matches the head position of the code for a data structure that has been defined and is displayed at a position alongside the head position. According to this system, although the code for the defined data structure and the code for the re-defined data structure can be recognized simultaneously, the overlapping of the individual data items in the memory area can not be intuitively described. Further, the matching of boundaries by alignment can not be expressed.
In Japanese Unexamined Patent Publication No. Hei 7-230379 a system is proposed for displaying the data structure of a source program by using a record hierarchial chart. The system that displays the data structure using the chart can indicate which portions in the memory area individual data items occupy, and how the data items overlap, but can not clearly describe the correlation between a defined area and a re-defined area. In addition, although in this system a memory size is to be expressed as the lateral length of a box, that size is too large for a general program that a user develops and employs, and it is difficult for the data structures to be intuitively displayed. The display method does not resemble the code, and is a little too abstract to be used by programmers as a reference for the changing of a program. Furthermore, since this system employs graphical expressions, a GUI (Graphical User Interface) is therefore required.